package com.hebeiboruan.user.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.hebeiboruan.entity.system.Power;
import com.hebeiboruan.entity.system.User;
import org.apache.ibatis.annotations.Param;

import java.io.IOException;
import java.util.List;

/**
 * @author 刘焕林
 * @date 2023/11/02
 */

public interface UserService extends IService<User> {
    /**
     * 根据账号查询用户
     * @param account
     * @return {@link User}
     */
    User getUser(String account);

    /**
     * 登录
     * @param account
     * @param password
     * @return {@link User}
     */
    User Login(String account,String password);


    /**
     * 获取有效的验证码的值
     * @param verificationCode 验证码的编号
     * @return {@link String}
     */
    String getVerificationCodeValue(String verificationCode);

    /**
     * 新增验证码
     * @param verificationCode 验证码编号
     * @param value 值
     */
    void insertVerificationCode(@Param("verificationCode") String verificationCode, @Param("value") String value);

    /**
     * 验证用户是否有某条权限
     * @param userNo
     * @param path
     * @return {@link Boolean}
     */

    /**
     * 获取用户的所有权限
     * @param userNo
     * @return {@link List}<{@link Power}>
     */
    List<Power> getUserPower(Integer userNo);

    /**
     * 清理验证码
     */
    void clear() throws IOException;
}
